/**
 * 用户车辆相关API调用
 * 提供获取用户车辆列表、管理用户车辆等功能
 */

// 确保window.api.userVehicles对象存在
window.api = window.api || {};
window.api.userVehicles = window.api.userVehicles || {};

/**
 * 获取用户的车辆列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码，默认为1
 * @param {number} params.pageSize - 每页数量，默认为10
 * @param {string} params.status - 车辆状态筛选
 * @returns {Promise} - 返回用户车辆列表数据
 */
window.api.userVehicles.getUserVehicles = async function(params = {}) {
    const defaultParams = {
        page: 1,
        pageSize: 10
    };
    
    const queryParams = {
        ...defaultParams,
        ...params
    };
    
    if (window.utils && window.utils.api && window.utils.api.get) {
        return await window.utils.api.get('/api/user/vehicles', queryParams);
    } else {
        console.error('未找到API工具函数');
        throw new Error('未找到API工具函数');
    }
};

/**
 * 获取用户车辆详情
 * @param {number} vehicleId - 车辆ID
 * @returns {Promise} - 返回车辆详情数据
 */
window.api.userVehicles.getUserVehicleDetail = async function(vehicleId) {
    if (window.utils && window.utils.api && window.utils.api.get) {
        return await window.utils.api.get(`/api/user/vehicles/${vehicleId}`);
    } else {
        console.error('未找到API工具函数');
        throw new Error('未找到API工具函数');
    }
};

/**
 * 更新用户车辆信息
 * @param {number} vehicleId - 车辆ID
 * @param {Object} data - 更新的车辆数据
 * @returns {Promise} - 返回更新结果
 */
window.api.userVehicles.updateUserVehicle = async function(vehicleId, data = {}) {
    if (window.utils && window.utils.api && window.utils.api.put) {
        return await window.utils.api.put(`/api/user/vehicles/${vehicleId}`, data);
    } else {
        console.error('未找到API工具函数');
        throw new Error('未找到API工具函数');
    }
};

/**
 * 删除用户车辆
 * @param {number} vehicleId - 车辆ID
 * @returns {Promise} - 返回删除结果
 */
window.api.userVehicles.deleteUserVehicle = async function(vehicleId) {
    if (window.utils && window.utils.api && window.utils.api.del) {
        // 获取认证令牌（使用专门的 getAuthToken 函数）
        const authToken = window.utils.cookie.getAuthToken();
        
        // 构建请求头，包含认证令牌
        const headers = {
            'Authorization': `Bearer ${authToken}`
        };
        
        return await window.utils.api.del(`/api/user/vehicles/${vehicleId}`, { headers });
    } else {
        console.error('未找到API工具函数');
        throw new Error('未找到API工具函数');
    }
};

console.log('userVehicles.js文件加载完成，API函数已挂载到window.api.userVehicles:', window.api.userVehicles);